<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>01正则的方法</title>
</head>

<body>

</body>
<script>
    /*
            正则的定义方式：
                * 字面量方式：
                    var reg = /表达式/ig;
                * 构造函数方式：
                    var reg = new RegExp('正则','ig');

            字符串的方法：str.match(正则)
                * str.match(正则) 匹配满足条件的数据，返回数组
                * str.search(正则) 查找数据第一次出现的位置，找到返回下标，找不到返回-1
                * str.replace(正则,'**')  查找替换

            正则的符号：

                * 文字(字母、汉字、数字、符号)绝对匹配：/涛哥/g  匹配到所有的涛哥
                * 字符类：
                    . :  除换行以外的字符 ：字母、数字、符号、汉字
                    \w : 代表数字或字母或下划线
                    \W : 非数字字母和下划线字符
                    \d : 数字
                    \D : 非数字
                    \s : 代表一个空格
                    \S : 空格以外的字符
                * 特殊符号
                    * 锚点定位
						* ^: 表示以什么开头
						* $: 表示以什么结尾
					* []: 代表任意“单个字符” ,里面的内容表示“或”的关系,元字符
							-: 代表范围
                            ^: 代表非
                                [abc] : a或b或c，单个字母  a  t ab
                                [abc]e : ae或be或ce
                                [a-z]9 : a到z任意一个小写字母和9组合
                                [a-zA-Z0-9] :任意个字母或数字
                                [a-zA-Z0-9_] 代表数字或字母或下划线 \w
                    * | 或：  fuck | 反清复明   有一个就符合
					* 表示数量
						*: 代表0个或0个以上 <===>{0,}
						+: 代表1个或1个以上 <===>{1,}  至少一个
						?: 代表0个或1个 <===>{0,1}  可有可无
                        {}:代表数据出现的次数
                            \d{1} : 代表一个数字
                            \d{2,} :两个或两个以上的数字 22 22222 5
                            \d{3,5} : 三到五个数字  2222  22(不满足) 66666
                                手机号码：
                                    * 11位数字
                                    * 首尾是1
                                    * 第二位是3-9
                                    * 正则：/1[3-9]\d{9}/
                                例如：
                                    * /[1-2]+%{2,}/  1%(不符合) 22%%(符合)  33%%(不符合)
                                    * 座机：0770-3901688-020
                                        /(\d{3,4}-)?[1-9]\d{5,7}(-\d{2,4})?/

                                            * (\d{3,4}-)? ：任意数字，取3-4位，和-组合，这一段可有可无
                                            * [1-9]\d{5,7} ：首位是1-9之间的一个数字，任意5-7位数字
                                            * (-\d{2,4})? ：-开头，后面紧跟2-4纯数字，整体可有可无
                                    * qq:10000-
                                        /[1-9]\d{4,}/
                                    * 邮箱：字母数字下划线或特殊符号@字母数字下划线.字母
                                        /\w+@\w+\.[a-zA-Z]+/
                                        /[\w#$!\-]+@[\w#$!\-]+\.[a-zA-Z]+/

                                    正则大全：https://www.cnblogs.com/fozero/p/7868687.html
            正则的方法：
                * test()
                    * 正则表达式.test(字符串) 返回布尔值
                    * 正则表达式.exec(字符串) 返回数据(了解即可)
 */

    var reg = /垃圾/g;//正则 :g 查找全部
    var str = '垃圾，真是的，讨厌垃圾';
    var str2 = str.replace(reg,'**');
    console.log(str,str2);

    var reg2 = /fuck/gi;//正则 :g 查找全部 i：忽略大小写
    var str3 = 'fuck，真是的，讨FUCK厌垃圾';
    var str4 = str3.replace(reg2,'**');
    console.log(str3,str4);


</script>

</html>